<!DOCTYPE HTML>

<html lang="en">
<head>

<title>LdapUserDetailsService (spring-security-docs 5.6.3 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="LdapUserDetailsService (spring-security-docs 5.6.3 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">

<div class="topNav"><a id="navbar.top">

</a>
<div class="skipNav"><a href="LdapUserDetailsService.html#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">

</a></div>

</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>

<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.springframework.security.ldap.userdetails</a></div>
<h2 title="Class LdapUserDetailsService" class="title">Class LdapUserDetailsService</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.springframework.security.ldap.userdetails.LdapUserDetailsService</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails">UserDetailsService</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">LdapUserDetailsService</span>
extends java.lang.Object
implements <a href="../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails">UserDetailsService</a></pre>
<div class="block">LDAP implementation of UserDetailsService based around an <a href="../search/LdapUserSearch.html" title="interface in org.springframework.security.ldap.search"><code>LdapUserSearch</code></a> and an
<a href="LdapAuthoritiesPopulator.html" title="interface in org.springframework.security.ldap.userdetails"><code>LdapAuthoritiesPopulator</code></a>. The final <tt>UserDetails</tt> object returned from
<tt>loadUserByUsername</tt> is created by the configured
<tt>UserDetailsContextMapper</tt>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">

</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="LdapUserDetailsService.html#%3Cinit%3E(org.springframework.security.ldap.search.LdapUserSearch)">LdapUserDetailsService</a></span>&#8203;(<a href="../search/LdapUserSearch.html" title="interface in org.springframework.security.ldap.search">LdapUserSearch</a>&nbsp;userSearch)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="LdapUserDetailsService.html#%3Cinit%3E(org.springframework.security.ldap.search.LdapUserSearch,org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator)">LdapUserDetailsService</a></span>&#8203;(<a href="../search/LdapUserSearch.html" title="interface in org.springframework.security.ldap.search">LdapUserSearch</a>&nbsp;userSearch,
<a href="LdapAuthoritiesPopulator.html" title="interface in org.springframework.security.ldap.userdetails">LdapAuthoritiesPopulator</a>&nbsp;authoritiesPopulator)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">

</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../core/userdetails/UserDetails.html" title="interface in org.springframework.security.core.userdetails">UserDetails</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="LdapUserDetailsService.html#loadUserByUsername(java.lang.String)">loadUserByUsername</a></span>&#8203;(java.lang.String&nbsp;username)</code></th>
<td class="colLast">
<div class="block">Locates the user based on the username.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="LdapUserDetailsService.html#setUserDetailsMapper(org.springframework.security.ldap.userdetails.UserDetailsContextMapper)">setUserDetailsMapper</a></span>&#8203;(<a href="UserDetailsContextMapper.html" title="interface in org.springframework.security.ldap.userdetails">UserDetailsContextMapper</a>&nbsp;userDetailsMapper)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">

</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.springframework.security.ldap.search.LdapUserSearch)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>LdapUserDetailsService</h4>
<pre>public&nbsp;LdapUserDetailsService&#8203;(<a href="../search/LdapUserSearch.html" title="interface in org.springframework.security.ldap.search">LdapUserSearch</a>&nbsp;userSearch)</pre>
</li>
</ul>
<a id="&lt;init&gt;(org.springframework.security.ldap.search.LdapUserSearch,org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LdapUserDetailsService</h4>
<pre>public&nbsp;LdapUserDetailsService&#8203;(<a href="../search/LdapUserSearch.html" title="interface in org.springframework.security.ldap.search">LdapUserSearch</a>&nbsp;userSearch,
                              <a href="LdapAuthoritiesPopulator.html" title="interface in org.springframework.security.ldap.userdetails">LdapAuthoritiesPopulator</a>&nbsp;authoritiesPopulator)</pre>
</li>
</ul>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">

</a>
<h3>Method Detail</h3>
<a id="loadUserByUsername(java.lang.String)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>loadUserByUsername</h4>
<pre class="methodSignature">public&nbsp;<a href="../../core/userdetails/UserDetails.html" title="interface in org.springframework.security.core.userdetails">UserDetails</a>&nbsp;loadUserByUsername&#8203;(java.lang.String&nbsp;username)
                               throws <a href="../../core/userdetails/UsernameNotFoundException.html" title="class in org.springframework.security.core.userdetails">UsernameNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../core/userdetails/UserDetailsService.html#loadUserByUsername(java.lang.String)">UserDetailsService</a></code></span></div>
<div class="block">Locates the user based on the username. In the actual implementation, the search
may possibly be case sensitive, or case insensitive depending on how the
implementation instance is configured. In this case, the <code>UserDetails</code>
object that comes back may have a username that is of a different case than what
was actually requested..</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../core/userdetails/UserDetailsService.html#loadUserByUsername(java.lang.String)">loadUserByUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails">UserDetailsService</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>username</code> - the username identifying the user whose data is required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a fully populated user record (never <code>null</code>)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../core/userdetails/UsernameNotFoundException.html" title="class in org.springframework.security.core.userdetails">UsernameNotFoundException</a></code> - if the user could not be found or the user has no
GrantedAuthority</dd>
</dl>
</li>
</ul>
<a id="setUserDetailsMapper(org.springframework.security.ldap.userdetails.UserDetailsContextMapper)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setUserDetailsMapper</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setUserDetailsMapper&#8203;(<a href="UserDetailsContextMapper.html" title="interface in org.springframework.security.ldap.userdetails">UserDetailsContextMapper</a>&nbsp;userDetailsMapper)</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>

<footer role="contentinfo">
<nav role="navigation">

<div class="bottomNav"><a id="navbar.bottom">

</a>
<div class="skipNav"><a href="LdapUserDetailsService.html#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="LdapUserDetailsService.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">

</a></div>

</nav>
</footer>
<script>if (window.parent == window) {(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-2728886-23', 'auto', {'siteSpeedSampleRate': 100});ga('send', 'pageview');}</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"7040e2e9fb5797cf","token":"bffcb8a918ae4755926f76178bfbd26b","version":"2021.12.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
